﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;

namespace Ewts.ashx
{
    /// <summary>
    /// BarCodePrint 的摘要说明
    /// </summary>
    public class BarCodePrint : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            if (context.Request.QueryString["height"] != null)
            {
                _height = Convert.ToInt32(context.Request.QueryString["height"].ToString());
            }
            if (context.Request.QueryString["code"] != null)
            {
                _code = context.Request.QueryString["code"].ToString();
            }
            if (context.Request.QueryString["width"] != null)
            {
                _width = Convert.ToInt32(context.Request.QueryString["width"].ToString());
            }



            DataLib.BarcodeLib.TYPE type = new DataLib.BarcodeLib.TYPE();
             //if (_code.IndexOf("XN") >= 0 && (_code.IndexOf("RP") >= 0 || _code.IndexOf("PR") >= 0))
             //   _width = 310;    

            type = DataLib.BarcodeLib.TYPE.CODE128;
            DataLib.BarcodeLib.Barcode b = new DataLib.BarcodeLib.Barcode();

            Image img = b.Encode(type, _code, Color.Black, Color.White, _width, _height);
            Bitmap myBitmap = new Bitmap(img);
 
            myBitmap.Save(context.Response.OutputStream, ImageFormat.Gif);
            context.Response.End();
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

        protected int _height = 25;
        protected string _code = "";
        protected string code = "";
        protected int _width = 300;

        //private string getCodeText(string n)
        //{
        //    string zf = n.ToLower();
        //    zf = zf.Replace("0", "_|_|__||_||_|");
        //    zf = zf.Replace("1", "_||_|__|_|_||");
        //    zf = zf.Replace("2", "_|_||__|_|_||");
        //    zf = zf.Replace("3", "_||_||__|_|_|");
        //    zf = zf.Replace("4", "_|_|__||_|_||");
        //    zf = zf.Replace("5", "_||_|__||_|_|");
        //    zf = zf.Replace("7", "_|_|__|_||_||");
        //    zf = zf.Replace("6", "_|_||__||_|_|");
        //    zf = zf.Replace("8", "_||_|__|_||_|");
        //    zf = zf.Replace("9", "_|_||__|_||_|");
        //    zf = zf.Replace("a", "_||_|_|__|_||");
        //    zf = zf.Replace("b", "_|_||_|__|_||");
        //    zf = zf.Replace("c", "_||_||_|__|_|");
        //    zf = zf.Replace("d", "_|_|_||__|_||");
        //    zf = zf.Replace("e", "_||_|_||__|_|");
        //    zf = zf.Replace("f", "_|_||_||__|_|");
        //    zf = zf.Replace("g", "_|_|_|__||_||");
        //    zf = zf.Replace("h", "_||_|_|__||_|");
        //    zf = zf.Replace("i", "_|_||_|__||_|");
        //    zf = zf.Replace("j", "_|_|_||__||_|");
        //    zf = zf.Replace("k", "_||_|_|_|__||");
        //    zf = zf.Replace("l", "_|_||_|_|__||");
        //    zf = zf.Replace("m", "_||_||_|_|__|");
        //    zf = zf.Replace("n", "_|_|_||_|__||");
        //    zf = zf.Replace("o", "_||_|_||_|__|");
        //    zf = zf.Replace("p", "_|_||_||_|__|");
        //    zf = zf.Replace("r", "_||_|_|_||__|");
        //    zf = zf.Replace("q", "_|_|_|_||__||");
        //    zf = zf.Replace("s", "_|_||_|_||__|");
        //    zf = zf.Replace("t", "_|_|_||_||__|");
        //    zf = zf.Replace("u", "_||__|_|_|_||");
        //    zf = zf.Replace("v", "_|__||_|_|_||");
        //    zf = zf.Replace("w", "_||__||_|_|_|");
        //    zf = zf.Replace("x", "_|__|_||_|_||");
        //    zf = zf.Replace("y", "_||__|_||_|_|");
        //    zf = zf.Replace("z", "_|__||_||_|_|");
        //    zf = zf.Replace("-", "_|__|_|_||_||");
        //    zf = zf.Replace("*", "_|__|_||_||_|");
        //    zf = zf.Replace("/", "_|__|__|_|__|");
        //    zf = zf.Replace("%", "_|_|__|__|__|");
        //    zf = zf.Replace("+", "_|__|_|__|__|");
        //    zf = zf.Replace(".", "_||__|_|_||_|");
        //    return zf;
        //}

    }
}